home *** CD-ROM | disk | FTP | other *** search
Text File | 1998-02-11 | 10.2 KB | 241 lines | [TEXT/CWIE] |
- /******************** ***********************/
- //
- // Player PRO 4.5x -- MAD Music Driver Definition - INTERNAL
- //
- // Library Version 4.0 - INTERNAL
- //
- // To use with MusicLibrary for Think C & CodeWarrior
- //
- // Antoine ROSSET
- // 16 Tranchees
- // 1206 GENEVA
- // SWITZERLAND
- //
- // FAX: (+41 22) 346 11 97
- // Compuserve: 100277,164
- // Internet: rosset@dial.eunet.ch or RossetAntoine@bluewin.ch
- //
- /******************** ***********************/
-
- #ifndef __RDRIVERINTH__
- #define __RDRIVERINTH__
-
- #include <stdio.h>
- #include "FileUtils.h"
-
- #define MEM {Str255 str; NumToString( FreeMem(), str); DebugStr( str);}
-
- //#define NUMBER_FINETUNES 16
- #define AMIGA_CLOCKFREQ2 14317456L //3575872L -- 14303488L
- #define BYTEDIV 8L
- #define REDUCEVOLUME 8000L
- #define TICKREMOVESIZE 1024L
- #define TICKREMOVESIZELEFT 10
- #define EXTRASMALLCOUNTER 5
-
- //#define POSPITCH 170
- #define SoundActive 0x27E
- #define ASCBase 0x0CC0
-
- /** Some #define functions for easiest access **/
-
- #define SampleDataN(InsD,NoteD) curMusic->sample[ InsD][ curMusic->header->fid[ InsD].what[ NoteD]]
- #define SampleDataS(InsD,SampleD) curMusic->sample[ InsD][ SampleD]
- #define SampleDataD(InsD) curMusic->sample[ InsD][ curSample[ InsD]]
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- /******************** ***********************/
- /*** INTERNAL ROUTINES ***/
- /*** DO NOT use these routines ***/
- /******************** ***********************/
-
- /*** Deluxe ***/
-
- void MADCreateOverShoot( MADDriverRec *intDriver);
- void MADKillOverShoot( MADDriverRec *intDriver);
- void Sampler16AddDeluxe( Channel *curVoice, register long *ASCBuffer, MADDriverRec *intDriver);
- void Sampler16Addin16Deluxe( Channel *curVoice, register long *ASCBuffer, MADDriverRec *intDriver);
- void Sample16BufferAddDeluxe( Channel *curVoice, register long *ASCBuffer, MADDriverRec *intDriver);
- void Play16StereoDeluxe( MADDriverRec *intDriver);
- void Sampler8in8AddDeluxe( Channel *curVoice, register short *ASCBuffer, MADDriverRec *intDriver);
- void Sampler8in16AddDeluxe( Channel *curVoice, register short *ASCBuffer, MADDriverRec *intDriver);
- void Sample8BufferAddDeluxe( Channel *curVoice, register short *ASCBuffer, MADDriverRec *intDriver);
- void Play8StereoDeluxe( MADDriverRec *intDriver);
-
- /*** Delay ***/
-
- void Sampler16AddDelay( Channel *curVoice, register long *ASCBuffer, MADDriverRec *intDriver);
- void Sampler16Addin16Delay( Channel *curVoice, register long *ASCBuffer, MADDriverRec *intDriver);
- void Sample16BufferAddDelay( Channel *curVoice, register long *ASCBuffer, MADDriverRec *intDriver);
- void Play16StereoDelay( MADDriverRec *intDriver);
- void Sampler8in8AddDelay( Channel *curVoice, register short *ASCBuffer, MADDriverRec *intDriver);
- void Sampler8in16AddDelay( Channel *curVoice, register short *ASCBuffer, MADDriverRec *intDriver);
- void Sample8BufferAddDelay( Channel *curVoice, register short *ASCBuffer, MADDriverRec *intDriver);
- void Play8StereoDelay( MADDriverRec *intDriver);
-
- /*** 8 Bits ***/
-
- void Sampler8in8Add( Channel *curVoice, register Ptr ASCBuffer, MADDriverRec *intDriver);
- void Sampler8in16Add( Channel *curVoice, register Ptr ASCBuffer, MADDriverRec *intDriver);
- void Sampler8in8AddPoly( Channel *curVoice, register Ptr ASCBuffer, short chanNo, MADDriverRec *intDriver);
- void Sampler8in16AddPoly( Channel *curVoice, register Ptr ASCBuffer, short chanNo, MADDriverRec *intDriver);
- void Sample8BufferAdd( Channel *curVoice, register Ptr ASCBuffer, MADDriverRec *intDriver);
- void Sample8BufferAddPoly( Channel *curVoice, register Ptr ASCBuffer, short chanNo, MADDriverRec *intDriver);
- void Play8Mono( MADDriverRec *intDriver);
- void Play8Stereo( MADDriverRec *intDriver);
- void Play8PolyPhonic( MADDriverRec *intDriver);
-
- /*** 16 Bits ***/
-
- void Sampler16Add( Channel *curVoice, register short *ASCBuffer, MADDriverRec* intDriver);
- void Sampler16Addin16( Channel *curVoice, register short *ASCBuffer, MADDriverRec* intDriver);
- void Sample16BufferAdd( Channel *curVoice, register short *ASCBuffer, MADDriverRec* intDriver);
- void Play16Stereo( MADDriverRec* intDriver);
- void Sampler16AddPoly( Channel *curVoice, register short *ASCBuffer, short chanNo, MADDriverRec* intDriver);
- void Sampler16Addin16Poly( Channel *curVoice, register short *ASCBuffer, short chanNo, MADDriverRec* intDriver);
- void Sample16BufferAddPoly( Channel *curVoice, register short *ASCBuffer, short chanNo, MADDriverRec* intDriver);
- void Play16PolyPhonic( MADDriverRec* intDriver);
- void Play16Mono( MADDriverRec* intDriver);
-
- /*** Effects ***/
-
- void DoEffect( Channel *ch, short call, MADDriverRec *intDriver);
- void SetUpEffect( Channel *ch, MADDriverRec *intDriver);
- void DoVolCmd( Channel *ch, short call, MADDriverRec *intDriver);
-
- /*** Interruption Functions ***/
-
- void NoteAnalyse( MADDriverRec *intDriver);
- pascal void DMAPlay ( void);
- void ReadNote( Channel *curVoice, Cmd *theCommand, MADDriverRec *intDriver);
- void Filter8Bit( register Byte *myPtr, MADDriverRec *intDriver);
- void Filter8BitX( register Byte *myPtr, MADDriverRec *intDriver);
- void Filter16BitX( register short *myPtr, MADDriverRec *intDriver);
- void BufferCopyM( MADDriverRec *intDriver);
- void BufferCopyS( MADDriverRec *intDriver);
- void NoteOff(short oldIns, short oldN, short oldV, MADDriverRec *intDriver);
- void SampleMIDI( Channel *curVoice, short channel, short curN, MADDriverRec *intDriver);
- void CleanDriver( MADDriverRec *intDriver);
-
- #ifdef _MAC_H
- pascal void MyDoubleBackProc(SndChannelPtr chan, SndDoubleBufferPtr doubleBuffer);
- void InstallPersistentVBL( MADDriverRec *MDriver, VBLTask *theVBLRec);
- SndChannelPtr CreateSndChannel( long init);
- OSErr DBSndPlay (MADDriverRec *inMADDriver, SndChannelPtr chan);
- #endif
-
- /*** General Functions ***/
-
- OSErr MADKillInstrument( MADMusic*, short ins);
- OSErr MADKillSample( MADMusic *, short ins, short sample);
- sData *MADCreateSample(void);
- OSErr MADKillCmd( Cmd*);
- void UpdateTracksNumber( MADDriverRec *);
-
- OSErr MADCreateVolumeTable( MADDriverRec *intDriver);
- void MADDisposeVolumeTable( MADDriverRec *intDriver);
-
- Boolean MADIsPressed( unsigned char* km2, unsigned short k);
- OSErr MADCreateTiming( MADDriverRec *intDriver);
- OSErr MADCreateDriverBuffer( MADDriverRec *intDriver);
- void MADDisposeDriverBuffer( MADDriverRec *intDriver);
- OSErr MADCreateReverb( MADDriverRec *intDriver);
- void MADDisposeReverb( MADDriverRec *intDriver);
- OSErr MADCreateMicroDelay( MADDriverRec *intDriver);
- long MADGetMusicSize( MADMusic*);
- OSErr MADReadMAD( MADMusic **music, UNFILE srcFile, short InPutType, Handle MADRsrc, Ptr MADPtr);
- OSErr DBSndClose(MADDriverRec *inMADDriver);
- void StopChannel(MADDriverRec *inMADDriver);
- void PlayChannel(MADDriverRec *inMADDriver);
- void InstallMODVBL(MADDriverRec *MDriver);
- void RemoveMODVBL(MADDriverRec *MDriver);
- void MODRelance(void);
- void Play(void);
- void VIAOn(void);
- void SndOff(void);
- void SndOn(void);
- void VIAOn2(void);
- void VIAOn3(void);
- void MADPurgeTrack( MADDriverRec *intDriver);
- OSErr InitDBSoundManager( MADDriverRec *intDriver, long);
- Boolean DirectSave( Ptr myPtr, MADDriverSettings *driverType, MADDriverRec *intDriver);
- void ChangeSpeed( void);
- void ClearFrequence(void);
- void InstallDMAVBL(MADDriverRec *MDriver);
- void RemoveDMAVBL(void);
- OSErr MADCreateVibrato(MADDriverRec *MDriver);
- void ActiveDMA(void);
- PatData* DecompressPartitionMAD1( MADMusic *MDriver, PatData* myPat);
- PatData* CompressPartitionMAD1( MADMusic *MDriver, PatData* myPat);
- Ptr DoMAC3Expand( Ptr sound, long *InOutSize);
- Ptr DoMAC3Compress( Ptr sound, long *InOutSize);
- void DMAIntInstall( unsigned long refCon, Ptr handlerAddr, unsigned long vectorBit);
- void DMAIntRemove( unsigned long vectorBit);
- void GenerateSound( MADDriverRec *intDriver);
- long GetOldPeriod( short note, long c2spd, MADDriverRec *intDriver);
- void MADCheckSpeed( MADMusic *MDriver, MADDriverRec *intDriver);
-
- OSErr PPTestFile( char *kindFile, char *AlienFile);
- OSErr PPInfoFile( char *kindFile, char *AlienFile, PPInfoRec *InfoRec);
- OSErr PPExportFile( char *kindFile, char *AlienFile, MADMusic *theNewMAD);
- OSErr PPImportFile( char *kindFile, char *AlienFile, MADMusic **theNewMAD);
- OSErr PPIdentifyFile( char *kindFile, char *AlienFile);
-
- OSType GetPPPlugType( short ID, OSType type);
- void MInitImportPlug( char*);
- void CloseImportPlug(void);
- OSErr MADLoadMADFileCString( MADMusic **, Ptr fName);
- OSErr CheckMADFile( char *AlienFile);
- OSErr MADCopyCurrentPartition( MADMusic *theNewMAD);
- OSErr CallImportPlug( short PlugNo, // CODE du plug
- OSType order,
- char *AlienFile,
- MADMusic *theNewMAD,
- PPInfoRec *info);
- long DoVol( Channel *ch);
-
- void MADKeyOFF( MADDriverRec *MDriver, short track);
-
- long MADMinimize( MADMusic*);
-
- void MADTickLoopFill8( Channel *curVoice, long *ASCBuffer1, long *ASCBuffer2, long size, short left, short right);
- void MADTickLoop8( long size, Channel *curVoice, long *ASCBuffer1, long *ASCBuffer2, MADDriverRec *intDriver);
- void MADTickRemoverStart8( Channel *curVoice, long *ASCBuffer1, long *ASCBuffer2, MADDriverRec *intDriver);
- void MADTickRemoverLoop16( long size, Channel *curVoice, long *ASCBuffer1, long *ASCBuffer2, MADDriverRec *intDriver, long diff);
- void MADTickRemoverLoop8( long size, Channel *curVoice, long *ASCBuffer1, long *ASCBuffer2, MADDriverRec *intDriver, long diff);
-
- short MADGetNextReader( MADMusic *music, MADDriverRec *intDriver, short cur, short *pat);
- OSErr MADCleanCurrentMusic( MADMusic *MDriver, MADDriverRec *intDriver);
-
- void MADSetMADDriverPtr( MADDriverRec* driver);
- long Interpolate(long p,long p1,long p2,long v1,long v2);
- long InterpolateEnv(long p, EnvRec *a,EnvRec *b);
- void ProcessFadeOut( Channel *ch, MADDriverRec *intDriver);
- void ProcessEnvelope( Channel *ch, MADDriverRec *intDriver);
- void StartEnvelope( Channel *ch);
- void NScanResource(void);
- void NScanDirImportPlug( long dirID, short VRefNum, Str255 Fname);
- void LoadImportPLUG( short No, FSSpec *theSpec);
-
- void DirectSoundClose( MADDriverRec* driver);
- Boolean DirectSoundInit( MADDriverRec* driver);
- Boolean W95_Init( MADDriverRec* driver);
- void W95_Exit( MADDriverRec* driver);
- // Effects.c
-
- void BL32( void *msg_buf);
- void BL16( void *msg_buf);
-
- void parse_slidevol(Channel *ch, Byte Arg);
- void ConvertTo64Rows( MADMusic *music);
- void BL32( void *msg_buf);
- void BL16( void *msg_buf);
-
-
- #ifdef __cplusplus
- }
- #endif
- #endif